package com.infolab.aims.service.intf;

import java.util.Date;
import java.util.List;

import com.infolab.aims.common.bean.SearchCriteria;
import com.infolab.aims.common.bean.SearchResult;
import com.infolab.aims.domain.asset.AssetTransaction;

public interface AssetTransactionService {
	
	public void createInitialBalance(AssetTransaction assetTransaction);
	
	public void createReceiveNewDeliveryOrder(AssetTransaction assetTransaction,Date startDate,Date endDate);
	
	public void createReceiveRepairDeliveryOrder(AssetTransaction assetTransaction);
	
	public void createRepairPurchaseOrder(AssetTransaction assetTransaction);
	
	public void updateRepairPurchaseOrder(AssetTransaction assetTransaction);
	
	public void createIssueOrderComponents(AssetTransaction assetTransaction);
	
	public void createStockTransferEquipments(AssetTransaction assetTransaction);
	
	public void createWorkOrderPartChanges(AssetTransaction assetTransaction);
	
	public void approveStockTransferEquipments(AssetTransaction assetTransaction);
	
	public void createInHouseTransferEquipments(AssetTransaction assetTransaction);
	
	public void rejectStockTransferEquipments(Integer assetTransactionId);
	
	public void updateStockTransferEquipments(AssetTransaction assetTransaction);
	
	public void createStockAdjustments(AssetTransaction assetTransaction);
	
	public void createSalesOfItems(AssetTransaction assetTransaction);
	
	public AssetTransaction getAssetTransaction(Integer assetTransactionId);
	
	public AssetTransaction findAssetTransaction(SearchCriteria searchCriteria);
	
	public AssetTransaction findInitialBalance(Integer assetModelId);
	
	public SearchResult searchAssetTransaction(SearchCriteria searchCriteria);
	
	public SearchResult searchIssueOrder(SearchCriteria searchCriteria);
	
	public SearchResult searchStockAdjustment(SearchCriteria searchCriteria);
	
	public void updateAssetTransaction(AssetTransaction assetTransaction);
	
	public List<String> isAvaliable(AssetTransaction assetTransaction);
}
